package com.scs.application.modules.dept.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.scs.application.core.query.QueryContext;
import com.scs.application.core.service.IBaseService;
import com.scs.application.modules.dept.entity.UseDtl;

import java.util.List;

/**
 * <p>
 * Service
 * </p>
 */

public interface UseDtlService extends IBaseService<UseDtl> {

    boolean saveByStock(String stockId, String useId, boolean fromFsd);

    /**
     * 定数包消耗 选择耗材保存
     *
     * @param stockIds
     * @param useId
     */
    void saveByStockIds(List<String> stockIds, String useId, boolean fromFsd);

    /**
     * 当日同科室消耗单详情
     *
     * @return
     */
    List<UseDtl> listCurrDateAndDept();

    /**
     * 根据stockId产生消耗
     * @param stockIds
     * @param useId
     * @param warehouseId
     * @param fromFsd 是否来自fsd，如果来自fsd，可以消耗一物一码的数据
     */
    void saveByStockIds(List<String> stockIds, String useId, String warehouseId, boolean fromFsd);

    boolean saveItemByCode(String stockId, String useId);

    /**
     * 获取本仓库下可冲红的数据
     * @param queryContext
     * @return
     */
    IPage<UseDtl> pageForRedList(QueryContext queryContext);

    /**
     * 根据sn和消耗仓库获取消耗/冲红记录
     * @param sn
     * @param warehouseId
     * @return
     */
    List<UseDtl> getUseDtlBySn(String sn, String warehouseId);

    String getType(String useId);

}
